perm filename EX3[206,JMC] blob sn#005340 filedate 1971-08-17 generic text, type T, neo UTF8
00100	(DEFPROP DEPTHFIRST
00200	(LAMBDA (S N)
00300	(COND((ISWIN S) (NCONS S))(T(DEPTHFIRST2(SUCCESSORS S) N)))) EXPR)
00400	
00500	(DEFPROP DEPTHFIRST2
00600	(LAMBDA(Z N)
00700	(COND((NULL Z) NIL)
00800		((ZEROP N)
00900		(COND ((ISWIN (CAR Z)) (NCONS (CAR Z)))	
01050			(T (DEPTHFIRST2 (CDR Z) N))))
01075		((DEPTHFIRST3 Z (SUB1 N)))
01100		(T (DEPTHFIRST2 (CDR Z) N))))
01200	EXPR)
01300	
01400	(DEFPROP DEPTHFIRST3
01500	(LAMBDA (Z N)
01600	(PROG (Q)
01700		(SETQ Q (DEPTHFIRST2 (SUCCESSORS (CAR Z))))
01800		(COND ((NULL Q) NIL) (T (RETURN (CONS (CAR Z) Q))))))
01900	EXPR)
02000	
02100	(DEFPROP BREADTHFIRST
02200	(LAMBDA(S)
02300	(PROG (A ZNOW ZNEXT)
02400		(COND ((ISWIN S) (RETURN (NCONS S))))
02500		(PUTPROP S NIL (QUOTE DADDY))
02600		(SETQ A S)
02700		(SETQ ZNOW (SETQ ZNEXT NIL))
02800	L	(SETQ Z (SUCCESSORS A))
02900		(COND ((BREADTHACROSS Z A) (RETURN T)))
03000		(SETQ ZNEXT (APPEND ZNEXT Z))
03100		(COND ((NULL ZNOW) (SETQ ZNOW ZNEXT) (SETQ ZNEXT NIL)))
03200		(COND ((NULL ZNOW)(RETURN NIL)))
03300		(SETQ A (CAR ZNOW))
03400		(SETQ A (CAR ZNOW))
03500		(SETQ ZNOW (CDR ZNOW))
03600		(GO L)))
03700	EXPR)
03800	
03900	(DEFPROP BREADTHACROSS
04000	(LAMBDA(Z DAD)
04100	(COND ((NULL Z) NIL)
04200		((ISWIN (CAR Z))
04300		(PRINT (REVERSE (CONS (CAR Z) (BACKUP DAD)))))
04400		(T (PUTPROP Z DAD (QUOTE DADDY))
04500		(BREADTHACROSS (CDR Z) DAD))))
04600	EXPR)
04700	
04800	(DEFPROP BACKUP
04900	(LAMBDA(Z)
05000	(COND ((NULL (GET Z (QUOTE DADDY))) (NCONS Z))
05100		(T (CONS Z (BACKUP (GET Z (QUOTE DADDY)))))))
05200	EXPR)
05300